Image processing apparatus, image processing method, and computer-readable storage medium

ABSTRACT

An image processing apparatus has a memory in which a plurality of image processing commands are stored, a dependent information producing unit which produces dependent information in each image data block becoming a target image processing, the dependent information indicating a dependency relationship between image processing of the image data block and another processing, a dependency relationship solving unit which makes a determination of a practicable image processing based on the dependent information, the dependency relationship solving unit writing an image processing command of the practicable image processing in the memory, and a plurality of image processing units which read an image processing command stored in the memory, the image processing units performing the image processing to the image data block based on the image processing command.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority fromthe prior Japanese Patent Application No. 2006-334249, filed on Dec. 12,2006; the entire contents of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates to an image processing apparatus, an imageprocessing method, and a computer-readable storage medium, particularlyto the image processing apparatus, image processing method andcomputer-readable storage medium for enabling efficient parallelprocessing.

Conventionally, in a multi-core system used in audio and visualapplications including a plurality of processors for performing imageprocessing and sound processing, processing efficiency is enhanced bypipeline processing of using a plurality of processors to whichprocessing contents are previously allocated. However, with recentdiversification of a method for processing medium dealt with, theprocessing efficiency is lowered rather than enhanced when theprocessing contents are previously allocated to the plurality ofprocessors.

On the other hand, in an image processing apparatus disclosed inJapanese Patent Application Laid-Open No. 2005-189975, the plurality ofprocessors do not perform the previously-allocated processing, butselectively perform the processing to segments (image data divided intopredetermined sizes) in the order registered in a process queue. Afterperforming processing to one segment, the processor of the imageprocessing apparatus disclosed in Japanese Patent Application Laid-OpenNo. 2005-189975 can perform processing to another segment to whichanother processor already performs processing. This enables theprocessing efficiency to be enhanced compared with the pipelineprocessing. However, because the processor of the Japanese PatentApplication Laid-Open No. 2005-189975 performs the processing accordingto the order registered in the process queue, the processor cannotperform the processing registered in the process queue until anotherprocessing is completed in the case where a dependency relationshipexists between a plurality of processings registered in the processqueue and another processing. Therefore, there is a problem in thatparallelism of the plural processors cannot efficiently be utilized.

Thus, in the conventional image processing apparatus, not only theplurality of processors cannot efficiently be operated to perform theimage processing, but also the parallelism of the plurality ofprocessors cannot efficiently be utilized.

BRIEF SUMMARY OF THE INVENTION

According to the first aspect of the present invention, an imageprocessing apparatus comprising: a memory in which a plurality of imageprocessing commands stored; a dependent information producing unit whichproduces dependent information in each image data block becoming atarget image processing, the dependent information indicating adependency relationship between image processing of the image data blockand another processing; a dependency relationship solving unit whichmakes a determination of a practicable image processing based on thedependent information, the dependency relationship solving unit writingan image processing command of the practicable image processing in thememory; and a plurality of image processing units which read an imageprocessing command stored in the memory, the image processing unitsperforming the image processing to the image data block based on theimage processing command.

According to the second aspect of the present invention, an imageprocessing method for concurrently performing a plurality of imageprocessings in each image data block, the image processing methodcomprising: producing dependent information in each image data blockbecoming a target image processing, the dependent information indicatinga dependency relationship between image processing of the image datablock and another processing; writing the dependent information in amemory; making a determination of a practicable image processing basedon the dependent information written in the memory; writing an imageprocessing command of image processing in the memory, the determinationthat the image processing is a practicable image processing being made;and performing the image processing based on the image processingcommand written in the memory.

According to the third aspect of the present invention, acomputer-readable storage medium, wherein a dependent informationproducing program which produces dependent information in each imagedata block becoming a target image processing, the dependent informationindicating a dependency relationship between image processing of theimage data block and another processing; a dependency relationshipsolving program which makes a determination of a practicable imageprocessing based on the dependent information, the dependencyrelationship solving program writing an image processing command of thepracticable image processing in the memory; and a plurality of imageprocessing programs which read an image processing command stored in thememory, the image processing programs performing the image processing tothe image data block based on the image processing command are stored inthe computer-readable storage medium.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a configuration of an image processingapparatus according to an embodiment of the present invention;

FIGS. 2A to 2F are schematic views showing input data and output data ofprocessing in the image processing apparatus according to an embodimentof the present invention;

FIG. 3 is a flowchart showing a processing procedure of a syntaxanalysis unit in HOST task processing according to an embodiment of thepresent invention;

FIG. 4 is a flowchart showing a processing procedure of the syntaxanalysis unit 101 in dependent information producing processingaccording to an embodiment of the present invention;

FIG. 5 is a flowchart showing a processing procedure of the syntaxanalysis unit 101 in dependency relationship solving processing (1)according to an embodiment of the present invention;

FIG. 6 is a flowchart showing a processing procedure of image processingunits 102A to 102D in PE task processing according to an embodiment ofthe present invention;

FIG. 7 is a flowchart showing a processing procedure of image processingunits 102A to 102D in dependency relationship solving processing (2)according to an embodiment of the present invention; and

FIG. 8 is a view showing an example of a dependent information fieldaccording to an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

An exemplary embodiment of the present invention will be described belowwith reference to the drawings. The following embodiment of the presentinvention is described by way of example only, and the scope of thepresent invention is not limited to the embodiment.

FIG. 1 is a block diagram showing a configuration of an image processingapparatus according to an embodiment of the present invention

The image processing apparatus according to an embodiment of the presentinvention has a function as a decoder. Image data coded in a bit streamis inputted to the decoder, and the decoder outputs decoded image datawhich is displayed in a predetermined output device (for example, liquidcrystal display). The image processing apparatus includes a syntaxanalysis unit 101, image processing units 102A to 102D, and a memory103. The units are connected to one another through a bus (orinterconnect) 104.

An image processing command 103A, a dependent information 103B, a HOSTtask program 103C, a PE task program 103D, an image processing program103E, a syntax analysis program 103F, a dependent information producingprogram 103G, and a dependency relationship solving program 103H arestored in the memory 103.

The image processing command 103A is a command concerning which imageprocessing should be performed (namely, which image processing program103E should be run), and the image processing command 103A is written inthe form of a data string having a queue structure. In a embodiment ofthe present invention, the practicable (dependency relationship withother image processing is solved) image processing command 103A isstored in the memory 103.

The dependent information 103B is information which is produced independent information producing processing (see FIG. 4), and thedependent information 103B includes a dependent information field (seeFIG. 8) in each macro block. The dependent information field includes asolution state (whether or not input data necessary for one imageprocessing is outputted as output data of the syntax analysis processingor another image processing) of the dependency relationship between oneimage processing and syntax analysis processing or another imageprocessing.

FIG. 8 is a view showing an example of the dependent information fieldof an embodiment of the present invention. The dependent informationfield of FIG. 8 includes three items of “IMAGE PROCESSING”, “PERFORMANCECOMPLETION INFORMATION”, and “VALIDATION/INVALIDATION”. The imageprocessing performed to one macro block is set in the “IMAGEPROCESSING”. A position of the macro block having the dependencyrelationship with the processing (syntax analysis processing or imageprocessing) having the dependency relationship is set in the“PERFORMANCE COMPLETION INFORMATION”. As described later, whether or notthe processing having the dependency relationship is already performedis also set in the “PERFORMANCE COMPLETION INFORMATION”. The case inwhich “ALREADY PERFORMED” is set to all processing in a column directionfor one image processing shall mean that the image processing is enabledto be performed. Validation or invalidation of the image processing isset in the “VALIDATION/INVALIDATION”. The image processing is notenabled to be performed while the “INVALIDATION” is set.

That is, the dependent information field of FIG. 8 shows that orthogonaltransformation processing and motion compensating processing depend onthe syntax analysis processing performed to the target macro block. Thedependent information field also shows that residual adding processingdepends on the orthogonal transformation and motion compensatingprocessing which are performed to the target macro block. The dependentinformation field also shows that intra predicting processing depends onthe orthogonal transformation processing performed to the target macroblock and the intra predicting processing performed to the left, upper,upper-left, and upper-right macro blocks. The dependent informationfield also shows that DBF processing depends on the residual addingprocessing and intra predicting processing which are performed to thetarget macro block and the DBF processing performed to the left andupper macro blocks.

The HOST task program 103C is a program module which performs HOST taskprocessing (see FIG. 3) for making a request of performing the imageprocessing, and the HOST task program 103C is run by the syntax analysisunit 101.

The PE task program 103D is a program module which receives the requestof performing the image processing, made by the HOST task processing, toperform the image processing. The PE task program 103D is also a programmodule which performs PE task processing (see FIG. 6) for making arequest of performing another image processing. The PE task program 103Dis run by each of the image processing units 102A to 102D.

The image processing program 103E is a program module which performsimage processing (see FIGS. 2B to 2F) corresponding to the imageprocessing command 103A, and the image processing program 103E is run byeach of the image processing units 102A to 102D.

The syntax analysis program 103F is a program module which performs thesyntax analysis processing (see FIG. 2A), and the syntax analysisprogram 103F is run by the syntax analysis unit 101.

The dependent information producing program 103G is a program modulewhich performs dependent information producing processing, and thedependent information producing program 103G is called in the HOST taskprocessing.

The dependency relationship solving program 103H is a program modulewhich performs dependency relationship solving processing (1) and (2)(see FIGS. 5 and 7), and the dependency relationship solving program103H is called in the HOST task processing or PE task processing.

An H.264 decoder is cited as an example of a decoder function of theimage processing apparatus according to an embodiment of the presentinvention. In the H.264 decoder, an example of the syntax analysisprocessing includes H. 264/AVC Syntax analysis processing, and examplesof the image processing include the intra predicting processing, theorthogonal transformation processing, the motion compensatingprocessing, the residual adding processing, and de-blocking filter (DBF)processing. In the H.264 decoder, decoding is performed in a block unitcalled macro block. Either “INTRA PREDICTION, I” for performing theintra predicting processing or “INTER PREDICTION, P” for performing themotion compensating processing is selected in each macro block based ona parameter specified by a stream, and the decoding is performingaccording to the selected processing flow.

FIGS. 2A to 2F are schematic views showing the input data and outputdata of processing in the image processing apparatus according to anembodiment of the present invention.

As shown in FIG. 2A, the syntax analysis processing is performed while acoding image stream is set to the input data, and a matrix ofcoefficients (Coeff) used in the orthogonal transformation processing isset to the output data. A prediction mode is set to the output data whenthe intra predicting mode is selected, and a BS value (operation mode ofDBF processing) and a motion vector are set to the output data when theinter predicting mode is selected.

As shown in FIG. 2B, in the orthogonal transformation processing, thematrix of coefficients (Coeff) of the macro block is set to the inputdata, the orthogonal transformation and inverse quantization areperformed, and a residual block is set to the output data.

As shown in FIG. 2C, in the motion compensating processing, the motionvector is set to the input data, the motion compensation is performedbased on a reference image, and the prediction image is set to theoutput data.

As shown in FIG. 2D, in the residual adding processing, the residualblock and the prediction image are set to the input data, the pixels ofthe residual block and prediction image are added, and the decoded imageis set to the output data.

As shown in FIG. 2E, in the intra predicting processing, the residualblocks, the macro blocks processed in the predicting mode and thedecoded images of the adjacent macro blocks (for example, left, upper,upper-right, and upper-left macro blocks) are set to the input data, theintra predicting mode is performed, and the decoded image of the targetmacro block is set to the output data. The number of adjacent macroblocks or directions of the adjacent macro blocks are arbitrarilydetermined.

As shown in FIG. 2F, the DBF processing is performed while the decodedimage and the decoded images to which the DBF processing is alreadyperformed in the adjacent macro blocks are set to the input data, andthe decoded image to which the DBF processing is already performed inthe target macro block is set to the output data.

FIG. 3 is a flowchart showing a processing procedure of the syntaxanalysis unit 101 in the HOST task processing according to an embodimentof the present invention. The syntax analysis unit 101 runs the HOSTtask program 103C to perform the HOST task processing.

The syntax analysis program 103F stored in the memory 103 is run toperform the syntax analysis processing, and the dependent informationfield is produced in each macro block shown in FIG. 8 (S301). Then, thedependent information producing program 103G is run to perform thedependent information producing processing shown in FIG. 4 (S302). Then,the dependency relationship solving program 103H is run to perform thedependency relationship solving processing (1) shown in FIG. 5 (S303).

FIG. 4 is a flowchart showing a processing procedure of the syntaxanalysis unit 101 in the dependent information producing processingaccording to an embodiment of the present invention. The syntax analysisunit 101 runs the dependent information producing program 103G toperform the dependent information producing processing.

The dependent information 103B stored in the memory 103 is locked(S401). S401 is performed to prevent the image processing units 102A to102D operating in parallel with the syntax analysis unit 101 fromreferring to the dependent information 103B in performing the dependentinformation producing processing and dependency relationship solvingprocessing (1). Then, the “VALIDATION/INVALIDATION” of the dependentinformation field is set according to the result of the syntax analysisprocessing (S301 of FIG. 3) and the position of the macro block (S402).Then, the “ALREADY PERFORMED” is set to the “SYNTAX ANALYSIS PROCESSING”of the “PERFORMANCE COMPLETION INFORMATION” (S403). Then, the “ALREADYPERFORMED” is set to the unnecessary image processing of the“PERFORMANCE COMPLETION INFORMATION” based on the output data of thesyntax analysis processing and the position of the macro block (S404).S402 to S404 are performed based on an algorithm of the dependentinformation producing program 103. Then, the dependent information fieldin which S401 to S404 are completed is written as the dependentinformation 103B in the memory 103 (S405). S401 to S405 are repeateduntil S401 to S405 are performed for all the macro blocks (S406).

FIG. 5 is a flowchart showing a processing procedure of the syntaxanalysis unit in the dependency relationship solving processing (1)according to an embodiment of the present invention. The syntax analysisunit 101 runs the dependency relationship solving program 103H toperform the dependency relationship solving processing (1).

The dependent information 103B is read from the memory 103 to refer tothe dependent information field (S501). Then, the syntax analysis unit101 determines whether the validation or invalidation is set to the“VALIDATION/INVALIDATION” (S502).

For the image processing in which the “INVALIDATION” is set (A:INVALIDATION in S502), the syntax analysis unit 101 determines that theimage processing is not practicable (S503).

On the other hand, for the image processing in which the “VALIDATION” isset (B: VALIDATION in S502), the syntax analysis unit 101 determineswhether or not all “PERFORMANCE COMPLETION INFORMATION” are “ALREADYPERFORMED” (S504).

For the image processing in which all “PERFORMANCE COMPLETIONINFORMATION” are “ALREADY PERFORMED”, the syntax analysis unit 101determines that the image processing is practicable (YES in S504 andS505). Then, the image processing command 103A stored in the memory 103is locked (S506). S506 is performed to prevent the image processingunits 102A to 102D from reading and writing the image processing command103A during the performance of the dependency relationship solvingprocessing. Then, the syntax analysis unit 101 writes the imageprocessing command 103A in the memory 103, and the syntax analysis unit101 notifies other image processing units 102A to 102D that the imageprocessing command 103A is written in the memory 103 (S507). Then, theimage processing command 103A of the memory 103 is unlocked (S508).

On the other hand, for the image processing in which all “PERFORMANCECOMPLETION INFORMATION” are not “ALREADY PERFORMED”, the syntax analysisunit 101 determines that the image processing is not practicable (NO inS504 and S503).

S502 to S508 are repeated for all image processing included in thedependent information field (S509). S501 to S509 are repeated for allthe macro blocks. When the repetition of S501 to S509 is completed (YESin S510), an area where dependent information 103B is stored in thememory 103 is unlocked, and the dependency relationship solvingprocessing (1) is ended (S511).

FIG. 6 is a flowchart showing a processing procedure of the imageprocessing units in the PE task processing according to an embodiment ofthe present invention. Each of the image processing units 102A to 102Druns the PE task program 103D to perform the PE task processing. Theimage processing units 102A to 102D concurrently run the PE task program103D.

When the image processing command 103A exists in the memory 103 (YES inS601), the image processing command 103A stored in the memory 103 islocked (S602). S602 is performed to prevent other image processing units(for example, the image processing units 102B to 102D when the imageprocessing unit 102A performs the PE task) from reading and writing theimage processing command 103A in performing the PE task processing.Then, the image processing command 103A is read (S603). Then, the imageprocessing command 103A of the memory 103 is unlocked (S604). The imageprocessing program 103E corresponding to the image processing command103A read in S603 is run to perform the image processing (S605). Afterthe image processing is completed, the dependency relationship solvingprocessing (2) described later is performed (S606).

On the other hand, when the image processing command 103A does not exist(NO in S601), the processing procedure makes transition to a standbystate (S607). The standby state is retained until the image processingcommand 103A is written (NO in S608). After the image processing command103A is written (YES in S606), the processing procedure is returned fromthe standby state (S609). Then, S602 to S606 are performed.

FIG. 7 is a flowchart showing a processing procedure of the imageprocessing units in the dependency relationship solving processing (2)according to an embodiment of the present invention. The imageprocessing units 102A to 102D run the dependency relationship solvingprogram 103H to perform the dependency relationship solving processing(2).

The dependent information 103B stored in the memory 103 is locked(S701). S701 is performed to prevent the syntax analysis unit 101 orother image processing units (for example, the image processing units102B to 102D when the image processing unit 102A performs the dependencyrelationship solving processing (2)) from reading and writing thedependent information 103B in performing the dependency relationshipsolving processing (2). Then, the dependent information 103B of themacro block to which the image processing should be performed is read torefer to the dependent information field (S702). Then, the dependentinformation 103B of the memory 103 is unlocked (S703).

The “ALREADY PERFORMED” is set to the “IMAGE PROCESSING” of the“PERFORMANCE COMPLETION INFORMATION” corresponding to the imageprocessing performed in S603 (S704). At this point, the “ALREADYPERFORMED” is set to not only the “IMAGE PROCESSING” of the “PERFORMANCECOMPLETION INFORMATION” of the dependent information 103B read in S701but also the “IMAGE PROCESSING” of the “PERFORMANCE COMPLETIONINFORMATION” included in the dependent information fields of dependentinformation 103B of other macro blocks. The setting is performed to allthe macro blocks having the dependency relationships with the imageprocessing performed to the target macro block of the image processing.S704 is performed based on the algorithm of the dependency relationshipsolving program 103H. Then, the image processing units 102A to 102Ddetermine whether the validation or the invalidation is set to the“VALIDATION/INVALIDATION” (S705).

For the image processing in which the “INVALIDATION” is set (A:INVALIDATION in S705), the image processing units 102A to 102D determinethat the image processing is not practicable (S706).

On the other hand, for the image processing in which the “VALIDATION” isset (B: VALIDATION in S705), the image processing units 102A to 102Ddetermine whether or not all “PERFORMANCE COMPLETION INFORMATION” are“ALREADY PERFORMED” while the dependent information field is viewed inthe column direction (S707).

For the image processing in which all “PERFORMANCE COMPLETIONINFORMATION” are “ALREADY PERFORMED”, the image processing units 102A to102D determine that the image processing is practicable (YES in S707 andS708). Then, the image processing command 103A of the memory 103 isunlocked (S709). S709 is performed to prevent other image processingunits (for example, the image processing units 102B to 102D when theimage processing unit 102A performs the dependency relationship solvingprocessing (2)) from reading and writing the image processing command103A in performing the dependency relationship solving processing (2).Then, the image processing command is written in the memory 103 (S710).Then, the image processing command 103A of the memory 103 is unlocked(S711).

On the other hand, for the image processing in which all “performancecompletion information” are not “already performed”, the imageprocessing units 102A to 102D determine that the image processing is notpracticable (NO in S707 and S706).

S705 to S711 are repeated for all image processing included in onedependent information field, and the dependency relationship solvingprocessing (2) is ended when the repetition is completed for all imageprocessing (YES in S712).

In accordance with an embodiment of the present invention, the imageprocessing command 103A is written in the memory 103 based on thedependency relationship among the plurality of image processing and thedependent information 103B including the performance completioninformation of the image processing having the dependency relationship.Therefore, only the practicable image processing command 103A is writtenin the memory. In other words, the image processing units 102A to 102Din which the image processing is not being performed can immediatelyperform the image processing command 103A of the memory 103.Accordingly, the parallel processing can efficiently be performed.

Additionally, the “PERFORMANCE COMPLETION INFORMATION” is managed in theunit of image processing of each macro block based on the headerinformation on the moving image coding stream. Therefore, theparallelism existing among the image processing in the macro block isutilized at a maximum, and it is not necessary that the particularprocessing be rigidly not allocated to the image processing units 102Ato 102D. Accordingly, the parallel processing can efficiently beperformed.

Additionally, the “VALIDATION/INVALIDATION” of the image processing isset in each macro block, so that different image processing procedurescan be performed among the macro blocks.

When the image processing command 103A does not exists, the imageprocessing units 102A to 102D make transition to the standby state toreduce power consumption of the image processing apparatus.

1. An image processing apparatus comprising: a memory in which aplurality of image processing commands are stored; a dependentinformation producing unit which produces dependent information in eachimage data block becoming a target image processing, the dependentinformation indicating a dependency relationship between imageprocessing of the image data block and another processing; a dependencyrelationship solving unit which makes a determination of a practicableimage processing based on the dependent information, the dependencyrelationship solving unit writing an image processing command of thepracticable image processing in the memory; and a plurality of imageprocessing units which read an image processing command stored in thememory, the image processing units performing the image processing tothe image data block based on the image processing command.
 2. The imageprocessing apparatus according to claim 1, wherein the dependentinformation producing unit produces dependent information includinginformation indicating validation or invalidation in each imageprocessing, and the dependency relationship solving unit writes theimage processing command of the image processing in the memory, theimage processing command of the image processing including informationindicating the validation of the image processing.
 3. The imageprocessing apparatus according to claim 2, wherein the dependencyrelationship solving unit updates the dependent information based onimage processing result performed by the image processing unit.
 4. Theimage processing apparatus according to claim 1, wherein the imageprocessing unit makes transition to a standby state when the imageprocessing command is not stored in the memory.
 5. The image processingapparatus according to claim 4, wherein the image processing unitcancels the standby state, when the image processing command is storedin the memory while the image processing unit is in the standby state.6. The image processing apparatus according to claim 2, wherein theimage processing unit makes transition to a standby state when the imageprocessing command is not stored in the memory.
 7. The image processingapparatus according to claim 6, wherein the image processing unitcancels the standby state, when the image processing command is storedin the memory while the image processing unit is in the standby state.8. The image processing apparatus according to claim 3, wherein theimage processing unit makes transition to a standby state when the imageprocessing command is not stored in the memory.
 9. The image processingapparatus according to claim 8, wherein the image processing unitcancels the standby state, when the image processing command is storedin the memory while the image processing unit is in the standby state.10. An image processing method for concurrently performing a pluralityof image processings in each image data block, the image processingmethod comprising: producing dependent information in each image datablock becoming a target image processing, the dependent informationindicating a dependency relationship between image processing of theimage data block and another processing; writing the dependentinformation in a memory; making a determination of a practicable imageprocessing based on the dependent information written in the memory;writing an image processing command of image processing in the memory,the determination that the image processing is a practicable imageprocessing being made; and performing the image processing based on theimage processing command written in the memory.
 11. The image processingmethod according to claim 10, wherein dependent information includinginformation indicating validation or invalidation in each imageprocessing is produced when the dependent information is produced, andthe image processing command of the image processing is written in thememory when the image processing command is written in the memory, theimage processing command of the image processing including informationindicating the validation of the image processing.
 12. The imageprocessing method according to claim 11, wherein the dependentinformation is updated based on result of the image processing when thedependent information is produced.
 13. The image processing methodaccording to claim 10, wherein transition to a standby state is madewhen the image processing command is not stored in the memory.
 14. Theimage processing method according to claim 13, wherein the standby stateis canceled when the image processing command is stored in the memoryduring the standby state.
 15. The image processing method according toclaim 11, wherein transition to a standby state is made when the imageprocessing command is not stored in the memory.
 16. The image processingmethod according to claim 15, wherein the standby state is canceled whenthe image processing command is stored in the memory during the standbystate.
 17. The image processing method according to claim 12, whereintransition to a standby state is made when the image processing commandis not stored in the memory.
 18. The image processing method accordingto claim 17, wherein the standby state is canceled when the imageprocessing command is stored in the memory during the standby state. 19.A computer-readable storage medium comprising: a dependent informationproducing program which produces dependent information in each imagedata block becoming a target image processing, the dependent informationindicating a dependency relationship between image processing of theimage data block and another processing; a dependency relationshipsolving program which makes a determination of a practicable imageprocessing based on the dependent information, the dependencyrelationship solving program writing an image processing command of thepracticable image processing in the memory; and a plurality of imageprocessing programs which read an image processing command stored in thememory, the image processing programs performing the image processing tothe image data block based on the image processing command are stored inthe computer-readable storage medium.